package com.sf.manager;

import com.sf.model.CollectInfo;
import com.sf.model.CollectInfoExample;
import com.sf.model.ProMarketBase;

import java.util.List;

/**
 * 集货团信息Manager类
 *
 * @author 604625
*/
public interface CollectInfoManager {
	
	/**
	 * 按条件计数
	 * 
	 * @param example 条件
	 * 
	 * @return int 记录总数
	 *
    */
    int countByExample(CollectInfoExample example);

	/**
	 * 按条件删除
	 * 
	 * @param example 条件
	 * 
	 * @return int 成功条数  
	 *
    */
    int deleteByExample(CollectInfoExample example);
	
	/**
	 * 按主键删除
	 * 
	 * @param id 
	 * 
	 * @return int 成功条数  
	 *
    */
    int deleteByPrimaryKey(Integer id);

	/**
	 * 新增
	 * 
	 * @param record 记录
	 * 
	 * @return int 成功条数  
	 *
    */
    int insert(CollectInfo record, ProMarketBase proMarketBase);

	/**
	 * 新增
	 *
	 * @param record 记录
	 *
	 * @return int 成功条数
	 *
	 */
	int insert(CollectInfo record);
	
	/**
	 * 新增,null字段不插入
	 * 
	 * @param record 记录
	 * 
	 * @return int 成功条数  
	 *
    */
    int insertSelective(CollectInfo record);
	
	
	/**
	 * 按条件查询
	 * 
	 * @param example 条件
	 * 
	 * @return List<CollectInfo> 记录列表
	 *
    */
    List<CollectInfo> selectByExample(CollectInfoExample example);

	/**
	 * 按主键查询
	 * 
	 * @param id 
	 * 
	 * @return CollectInfo 记录 
	 *
    */
    CollectInfo selectByPrimaryKey(Integer id);

	/**
	 * 按条件更新,null字段不更新
	 * 
	 * @param record 记录
	 * @param example 条件
	 * @return int 成功条数  
	 *
    */
    int updateByExampleSelective(CollectInfo record, CollectInfoExample example);

	
	/**
	 * 按条件更新
	 * 
	 * @param record 记录
	 * @param example 条件
	 * @return int 成功条数  
	 *
    */
    int updateByExample(CollectInfo record,  CollectInfoExample example);

	/**
	 * 按条件更新
	 *
	 * @param record 记录
	 * @return int 成功条数
	 *
	 */
	int updateByIdAndStatus(CollectInfo record, Byte sourceState, Byte destState);

	/**
	 * 按主键更新,null的字段不更新
	 * 
	 * @param record 记录
	 * @return int 成功条数 
	 *
    */
    int updateByPrimaryKeySelective(CollectInfo record);


	/**
	 * 按主键更新
	 * 
	 * @param record 记录
	 * @return int 成功条数 
	 *
    */
    int updateByPrimaryKey(CollectInfo record);

    CollectInfo queryUnFinishedCollectInfo(String type);
    
    /**
	 * 获取集货信息
	 * 
	 * @return 
	 *
    */
    CollectInfo selectCollectInfo();
    
	
}